.. _envoy_api_file_api/bootstrap.proto: Bootstrap ========= This proto is expected to be provided on disk or via the command-line to Envoy. It provides sufficient information for Envoy to fetch the rest of its configuration from either disk or management server(s). .. _envoy_api_msg_LightstepConfig: LightstepConfig --------------- `[LightstepConfig proto] `_ .. code-block:: json { "collector_cluster": "...", "access_token_file": "..." } .. _envoy_api_field_LightstepConfig.collector_cluster: collector_cluster (`string `_) The cluster manager cluster that hosts the LightStep collectors. .. _envoy_api_field_LightstepConfig.access_token_file: access_token_file (`string `_) File containing the access token to the LightStep API. .. _envoy_api_msg_ZipkinConfig: ZipkinConfig ------------ `[ZipkinConfig proto] `_ .. code-block:: json { "collector_cluster": "...", "collector_endpoint": "..." } .. _envoy_api_field_ZipkinConfig.collector_cluster: collector_cluster (`string `_) The cluster manager cluster that hosts the Zipkin collectors. Note that the Zipkin cluster must be defined under clusters in the cluster manager configuration section. .. _envoy_api_field_ZipkinConfig.collector_endpoint: collector_endpoint (`string `_) The API endpoint of the Zipkin service where the spans will be sent. When using a standard Zipkin installation, the API endpoint is typically /api/v1/spans, which is the default value. .. _envoy_api_msg_Tracing: Tracing ------- `[Tracing proto] `_ .. code-block:: json { "http": "{...}" } .. _envoy_api_field_Tracing.http: http (:ref:`Tracing.Http `) .. _envoy_api_msg_Tracing.Http: Tracing.Http ------------ `[Tracing.Http proto] `_ Provides configuration for the HTTP tracer. .. code-block:: json { "name": "...", "config": "{...}" } .. _envoy_api_field_Tracing.Http.name: name (`string `_) The name of the HTTP trace driver to instantiate. The name must match a supported HTTP trace driver. "envoy.lightstep" and "envoy.zipkin" are built-in trace drivers. .. _envoy_api_field_Tracing.Http.config: config (`Struct `_) Trace driver specific configuration which depends on the driver being instantiated. See the trace drivers for further documentation. .. _envoy_api_msg_Admin: Admin ----- `[Admin proto] `_ .. code-block:: json { "access_log_path": "...", "profile_path": "...", "address": "{...}" } .. _envoy_api_field_Admin.access_log_path: access_log_path (`string `_) The path to write the access log for the administration server. If no access log is desired specify ‘/dev/null’. .. _envoy_api_field_Admin.profile_path: profile_path (`string `_) The cpu profiler output path for the administration server. If no profile path is specified, the default is ‘/var/log/envoy/envoy.prof’. .. _envoy_api_field_Admin.address: address (:ref:`Address `) The TCP address that the administration server will listen on. .. _envoy_api_msg_ClusterManager: ClusterManager -------------- `[ClusterManager proto] `_ .. code-block:: json { "local_cluster_name": "...", "outlier_detection": "{...}", "upstream_bind_config": "{...}", "load_stats_config": "{...}" } .. _envoy_api_field_ClusterManager.local_cluster_name: local_cluster_name (`string `_) Name of the local cluster (i.e., the cluster that owns the Envoy running this configuration). In order to enable zone aware routing this option must be set. If local_cluster_name is defined then clusters must contain a definition of a cluster with the same name. .. _envoy_api_field_ClusterManager.outlier_detection: outlier_detection (:ref:`ClusterManager.OutlierDetection `) .. _envoy_api_field_ClusterManager.upstream_bind_config: upstream_bind_config (:ref:`BindConfig `) Optional configuration used to bind newly established upstream connections. This may be overridden on a per-cluster basis by upstream_bind_config in the cds_config. .. _envoy_api_field_ClusterManager.load_stats_config: load_stats_config (:ref:`ApiConfigSource `) A management server endpoint to stream load stats to, as per StreamLoadStats in eds.proto. This must have api_type GRPC. .. _envoy_api_msg_ClusterManager.OutlierDetection: ClusterManager.OutlierDetection ------------------------------- `[ClusterManager.OutlierDetection proto] `_ Optional global configuration for outlier detection. .. code-block:: json { "event_log_path": "..." } .. _envoy_api_field_ClusterManager.OutlierDetection.event_log_path: event_log_path (`string `_) .. _envoy_api_msg_StatsdSink: StatsdSink ---------- `[StatsdSink proto] `_ Stats proto for built-in "envoy.statsd" sink. .. code-block:: json { "address": "{...}", "tcp_cluster_name": "..." } .. _envoy_api_field_StatsdSink.address: address (:ref:`Address `) The UDP address of a running statsd compliant listener. If specified, statistics will be flushed to this address. Only one of :ref:`address `, :ref:`tcp_cluster_name ` may be set. .. _envoy_api_field_StatsdSink.tcp_cluster_name: tcp_cluster_name (`string `_) The name of a cluster manager cluster that is running a TCP statsd compliant listener. If specified, Envoy will connect to this cluster to flush statistics. Only one of :ref:`address `, :ref:`tcp_cluster_name ` may be set. .. _envoy_api_msg_StatsSink: StatsSink --------- `[StatsSink proto] `_ .. code-block:: json { "name": "...", "config": "{...}" } .. _envoy_api_field_StatsSink.name: name (`string `_) The name of the stats sink to instantiate. The name must match a supported stats sink. "envoy.statsd" is a built-in sink suitable for emitting to statsd. .. _envoy_api_field_StatsSink.config: config (`Struct `_) Stats sink specific configuration which depends on the sink being instantiated. See the supported sinks for further documentation. .. _envoy_api_msg_TagSpecifier: TagSpecifier ------------ `[TagSpecifier proto] `_ Designates a tag to strip from the tag extracted name and provide as a named tag value for all statistics. This will only occur if any part of the name matches the regex provided with one or more capture groups. .. code-block:: json { "tag_name": "...", "regex": "..." } .. _envoy_api_field_TagSpecifier.tag_name: tag_name (`string `_) Attaches an identifier to the tag values to identify the tag being in the sink. Envoy has a set of default names and regexes to extract dynamic portions of existing stats, which can be found in source/common/config/well_known_names.h in the Envoy repository. If a tag_name is provided in the config with an empty regex, Envoy will attempt to find that name in its set of defaults and use the accompanying regex. Note: if any default tags are specified twice, the config will be considered invalid. .. _envoy_api_field_TagSpecifier.regex: regex (`string `_) The first capture group identifies the portion of the name to remove. The second capture group (which will normally be nested inside the first) will designate the value of the tag for the statistic. If no second capture group is provided, the first will also be used to set the value of the tag. All other capture groups will be ignored. For example: stat name: "cluster.foo_cluster.upstream_rq_timeout" tag name: "envoy.cluster_name" (one of many default stat regexes provided in Envoy) regex: "^cluster\.((.+?)\.)" Notice the regex will remove "foo_cluster." making the tag extracted name "cluster.upstream_rq_timeout" and the tag value for "envoy.cluster_name" "foo_cluster" (note: no '.' character because of the second capture group). An example with two regexes: First tag name: "envoy.http_user_agent" First regex: "^http(?=\.).*?\.user_agent\.((.+?)\.)\w+?$" Second tag name: "envoy.http_conn_manager_prefix" Second regex: "^http\.((.*?)\.)" Stat name: "http.connection_manager_1.user_agent.ios.downstream_cx_total" The first regex will remove "ios." leaving the tag extracted name: "http.connection_manager_1.user_agent.downstream_cx_total". The tag "envoy.http_user_agent" will be added with tag value "ios". The second regex will remove "connection_manager_1." from the tag extracted name produced by the first regex ("http.connection_manager_1.user_agent.downstream_cx_total"), leaving "http.user_agent.downstream_cx_total" as the tag extracted name. The tag "envoy.http_conn_manager_prefix" will be added with the tag value "connection_manager_1". .. _envoy_api_msg_StatsConfig: StatsConfig ----------- `[StatsConfig proto] `_ .. code-block:: json { "stats_tags": [], "use_all_default_tags": "{...}" } .. _envoy_api_field_StatsConfig.stats_tags: stats_tags (:ref:`TagSpecifier `) Each stat name is iteratively processed through these tag specifiers. When a tag is matched, the first capture group is removed from the name so later TagSpecifiers cannot match that same portion of the match. .. _envoy_api_field_StatsConfig.use_all_default_tags: use_all_default_tags (`BoolValue `_) Use all default tag regexes specified in Envoy. These can be combined with custom tags specified in stats_tags. They will be processed before the custom tags. Note: if any default tags are specified twice, the config will be considered invalid. See source/common/config/well_known_names.h for a a list of the default tags in Envoy. If not provided, the value is assumed to be true. .. _envoy_api_msg_Watchdog: Watchdog -------- `[Watchdog proto] `_ .. code-block:: json { "miss_timeout": "{...}", "megamiss_timeout": "{...}", "kill_timeout": "{...}", "multikill_timeout": "{...}" } .. _envoy_api_field_Watchdog.miss_timeout: miss_timeout (`Duration `_) The duration after which Envoy counts a nonresponsive thread in the “server.watchdog_miss” statistic. If not specified the default is 200ms. .. _envoy_api_field_Watchdog.megamiss_timeout: megamiss_timeout (`Duration `_) The duration after which Envoy counts a nonresponsive thread in the “server.watchdog_mega_miss” statistic. If not specified the default is 1000ms. .. _envoy_api_field_Watchdog.kill_timeout: kill_timeout (`Duration `_) If a watched thread has been nonresponsive for this duration, assume a programming error and kill the entire Envoy process. Set to 0 to disable kill behavior. If not specified the default is 0 (disabled). .. _envoy_api_field_Watchdog.multikill_timeout: multikill_timeout (`Duration `_) If at least two watched threads have been nonresponsive for at least this duration assume a true deadlock and kill the entire Envoy process. Set to 0 to disable this behavior. If not specified the default is 0 (disabled). .. _envoy_api_msg_Runtime: Runtime ------- `[Runtime proto] `_ .. code-block:: json { "symlink_root": "...", "subdirectory": "...", "override_subdirectory": "..." } .. _envoy_api_field_Runtime.symlink_root: symlink_root (`string `_) The implementation assumes that the file system tree is accessed via a symbolic link. An atomic link swap is used when a new tree should be switched to. This parameter specifies the path to the symbolic link. Envoy will watch the location for changes and reload the file system tree when they happen. .. _envoy_api_field_Runtime.subdirectory: subdirectory (`string `_) Specifies the subdirectory to load within the root directory. This is useful if multiple systems share the same delivery mechanism. Envoy configuration elements can be contained in a dedicated subdirectory. .. _envoy_api_field_Runtime.override_subdirectory: override_subdirectory (`string `_) Specifies an optional subdirectory to load within the root directory. If specified and the directory exists, configuration values within this directory will override those found in the primary subdirectory. This is useful when Envoy is deployed across many different types of servers. Sometimes it is useful to have a per service cluster directory for runtime configuration. See below for exactly how the override directory is used. .. _envoy_api_msg_RateLimitServiceConfig: RateLimitServiceConfig ---------------------- `[RateLimitServiceConfig proto] `_ .. code-block:: json { "cluster_name": "..." } .. _envoy_api_field_RateLimitServiceConfig.cluster_name: cluster_name (`string `_) Specifies the cluster manager cluster name that hosts the rate limit service. The client will connect to this cluster when it needs to make rate limit service requests. .. _envoy_api_msg_Bootstrap: Bootstrap --------- `[Bootstrap proto] `_ .. code-block:: json { "node": "{...}", "static_resources": "{...}", "dynamic_resources": "{...}", "cluster_manager": "{...}", "flags_path": "...", "stats_sinks": [], "stats_config": "{...}", "stats_flush_interval": "{...}", "watchdog": "{...}", "tracing": "{...}", "rate_limit_service": "{...}", "runtime": "{...}", "admin": "{...}" } .. _envoy_api_field_Bootstrap.node: node (:ref:`Node `) Node identity to present to the management server and for instance identification purposes (e.g. in generated headers). .. _envoy_api_field_Bootstrap.static_resources: static_resources (:ref:`Bootstrap.StaticResources `) .. _envoy_api_field_Bootstrap.dynamic_resources: dynamic_resources (:ref:`Bootstrap.DynamicResources `) .. _envoy_api_field_Bootstrap.cluster_manager: cluster_manager (:ref:`ClusterManager `) Configuration for the cluster manager which owns all upstream clusters within the server. .. _envoy_api_field_Bootstrap.flags_path: flags_path (`string `_) Optional file system path to search for startup flag files. .. _envoy_api_field_Bootstrap.stats_sinks: stats_sinks (:ref:`StatsSink `) Optional set of stats sinks. .. _envoy_api_field_Bootstrap.stats_config: stats_config (:ref:`StatsConfig `) Configuration for internal processing of stats. .. _envoy_api_field_Bootstrap.stats_flush_interval: stats_flush_interval (`Duration `_) Optional duration between flushes to configured stats sinks. For performance reasons Envoy latches counters and only flushes counters and gauges at a periodic interval. If not specified the default is 5000ms (5 seconds). .. _envoy_api_field_Bootstrap.watchdog: watchdog (:ref:`Watchdog `) Optional watchdog configuration. .. _envoy_api_field_Bootstrap.tracing: tracing (:ref:`Tracing `) Configuration for an external tracing provider. If not specified, no tracing will be performed. .. _envoy_api_field_Bootstrap.rate_limit_service: rate_limit_service (:ref:`RateLimitServiceConfig `) Configuration for an external rate limit service provider. If not specified, any calls to the rate limit service will immediately return success. .. _envoy_api_field_Bootstrap.runtime: runtime (:ref:`Runtime `) Configuration for the runtime configuration provider. If not specified, a “null” provider will be used which will result in all defaults being used. .. _envoy_api_field_Bootstrap.admin: admin (:ref:`Admin `) Configuration for the local administration HTTP server. .. _envoy_api_msg_Bootstrap.StaticResources: Bootstrap.StaticResources ------------------------- `[Bootstrap.StaticResources proto] `_ Statically specified resources. .. code-block:: json { "listeners": [], "clusters": [], "secrets": [] } .. _envoy_api_field_Bootstrap.StaticResources.listeners: listeners (:ref:`Listener `) .. _envoy_api_field_Bootstrap.StaticResources.clusters: clusters (:ref:`Cluster `) If a network based configuration source is specified for cds_config, it's necessary to have some initial cluster definitions available to allow Envoy to know how to speak to the management server. These cluster definitions may not use EDS (i.e. they should be static IP or DNS-based). .. _envoy_api_field_Bootstrap.StaticResources.secrets: secrets (:ref:`Secret `) .. _envoy_api_msg_Bootstrap.DynamicResources: Bootstrap.DynamicResources -------------------------- `[Bootstrap.DynamicResources proto] `_ xDS configuration sources. .. code-block:: json { "lds_config": "{...}", "cds_config": "{...}", "ads_config": "{...}", "deprecated_v1": "{...}" } .. _envoy_api_field_Bootstrap.DynamicResources.lds_config: lds_config (:ref:`ConfigSource `) All Listeners are provided by a single LDS configuration source. .. _envoy_api_field_Bootstrap.DynamicResources.cds_config: cds_config (:ref:`ConfigSource `) All post-bootstrap Cluster definitions are provided by a single CDS configuration source. .. _envoy_api_field_Bootstrap.DynamicResources.ads_config: ads_config (:ref:`ApiConfigSource `) A single ADS source may be optionally specified. This must have api_type GRPC. .. _envoy_api_field_Bootstrap.DynamicResources.deprecated_v1: deprecated_v1 (:ref:`Bootstrap.DynamicResources.DeprecatedV1 `) .. _envoy_api_msg_Bootstrap.DynamicResources.DeprecatedV1: Bootstrap.DynamicResources.DeprecatedV1 --------------------------------------- `[Bootstrap.DynamicResources.DeprecatedV1 proto] `_ .. code-block:: json { "sds_config": "{...}" } .. _envoy_api_field_Bootstrap.DynamicResources.DeprecatedV1.sds_config: sds_config (:ref:`ConfigSource `) This is the global SDS config when using v1 REST for CDS/EDS.